package com.atguigu.base;

import com.github.pagehelper.Page;

import java.io.Serializable;
import java.util.Map;

/*
* 1 接口可以继承
* 2 只有接口能继承接口
* 3 一个接口可以继承多个接口
* */

public interface BaseDao<T> {
    /**
     * 保存一个实体类信息进入数据库的方法
     * @param t
     * @return
     */
    Integer insert(T t);

    /**
     * 根据主键删除表格中的一条数据
     * @param id
     */
    void delete(Serializable id);

    /**
     * 根据主键修改其他字段方法
     * @param t
     * @return
     */
    Integer update(T t);

    /**
     * 根据主键查询单个记录方法
     * @param id
     * @return
     */
    T getById(Serializable id);

    /**
     * 根据条件查询表格数据API,一般用于配合分页查询
     * @param filters
     * @return
     */
    Page<T> findPage(Map<String,Object> filters);
}

